home *** CD-ROM | disk | FTP | other *** search
/ PC Advisor 2010 April / PCA177.iso / ESSENTIALS / Firefox Setup.exe / nonlocalized / chrome / browser.jar / content / browser / safeMode.js < prev    next >
Encoding:
JavaScript  |  2009-07-15  |  4.2 KB  |  111 lines

  1. //@line 39 "e:\builds\moz2_slave\win32_build\build\browser\base\content\safeMode.js"
  2.  
  3. function restartApp() {
  4.   var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"]
  5.                              .getService(Components.interfaces.nsIAppStartup);
  6.   appStartup.quit(appStartup.eForceQuit | appStartup.eRestart);
  7. }
  8.  
  9. function clearAllPrefs() {
  10.   var prefService = Components.classes["@mozilla.org/preferences-service;1"]
  11.                               .getService(Components.interfaces.nsIPrefService);
  12.   prefService.resetUserPrefs();
  13.  
  14.   // Remove the pref-overrides dir, if it exists
  15.   try {
  16.     var fileLocator = Components.classes["@mozilla.org/file/directory_service;1"]
  17.                                 .getService(Components.interfaces.nsIProperties);
  18.     const NS_APP_PREFS_OVERRIDE_DIR = "PrefDOverride";
  19.     var prefOverridesDir = fileLocator.get(NS_APP_PREFS_OVERRIDE_DIR,
  20.                                            Components.interfaces.nsIFile);
  21.     prefOverridesDir.remove(true);
  22.   } catch (ex) {
  23.     Components.utils.reportError(ex);
  24.   }
  25. }
  26.  
  27. function restoreDefaultBookmarks() {
  28.   var prefBranch  = Components.classes["@mozilla.org/preferences-service;1"]
  29.                               .getService(Components.interfaces.nsIPrefBranch);
  30.   prefBranch.setBoolPref("browser.bookmarks.restore_default_bookmarks", true);
  31. }
  32.  
  33. function deleteLocalstore() {
  34.   const nsIDirectoryServiceContractID = "@mozilla.org/file/directory_service;1";
  35.   const nsIProperties = Components.interfaces.nsIProperties;
  36.   var directoryService =  Components.classes[nsIDirectoryServiceContractID]
  37.                                     .getService(nsIProperties);
  38.   var localstoreFile = directoryService.get("LStoreS", Components.interfaces.nsIFile);
  39.   if (localstoreFile.exists())
  40.     localstoreFile.remove(false);
  41. }
  42.  
  43. function disableAddons() {
  44.   // Disable addons
  45.   const nsIUpdateItem = Components.interfaces.nsIUpdateItem;
  46.   var em = Components.classes["@mozilla.org/extensions/manager;1"]
  47.                      .getService(Components.interfaces.nsIExtensionManager);
  48.   var type = nsIUpdateItem.TYPE_EXTENSION + nsIUpdateItem.TYPE_LOCALE;
  49.   var items = em.getItemList(type, { });
  50.   for (var i = 0; i < items.length; ++i)
  51.     em.disableItem(items[i].id);
  52.  
  53.   // Select the default theme
  54.   var prefB = Components.classes["@mozilla.org/preferences-service;1"]
  55.                         .getService(Components.interfaces.nsIPrefBranch);
  56.   if (prefB.prefHasUserValue("general.skins.selectedSkin"))
  57.     prefB.clearUserPref("general.skins.selectedSkin");
  58.  
  59.   // Disable plugins
  60.   var phs = Components.classes["@mozilla.org/plugin/host;1"]
  61.                       .getService(Components.interfaces.nsIPluginHost);
  62.   var plugins = phs.getPluginTags({ });
  63.   for (i = 0; i < plugins.length; ++i)
  64.     plugins[i].disabled = true;
  65. }
  66.  
  67. function restoreDefaultSearchEngines() {
  68.   var searchService = Components.classes["@mozilla.org/browser/search-service;1"]
  69.                                 .getService(Components.interfaces.nsIBrowserSearchService);
  70.  
  71.   searchService.restoreDefaultEngines();
  72. }
  73.  
  74. function onOK() {
  75.   try {
  76.     if (document.getElementById("resetUserPrefs").checked)
  77.       clearAllPrefs();
  78.     if (document.getElementById("resetBookmarks").checked)
  79.       restoreDefaultBookmarks();
  80.     if (document.getElementById("resetToolbars").checked)
  81.       deleteLocalstore();
  82.     if (document.getElementById("disableAddons").checked)
  83.       disableAddons();
  84.     if (document.getElementById("restoreSearch").checked)
  85.       restoreDefaultSearchEngines();
  86.   } catch(e) {
  87.   }
  88.  
  89.   restartApp();
  90. }
  91.  
  92. function onCancel() {
  93.   var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"]
  94.                              .getService(Components.interfaces.nsIAppStartup);
  95.   appStartup.quit(appStartup.eForceQuit);
  96. }
  97.  
  98. function onLoad() {
  99.   document.getElementById("tasks")
  100.           .addEventListener("CheckboxStateChange", UpdateOKButtonState, false);
  101. }
  102.  
  103. function UpdateOKButtonState() {
  104.   document.documentElement.getButton("accept").disabled = 
  105.     !document.getElementById("resetUserPrefs").checked &&
  106.     !document.getElementById("resetBookmarks").checked &&
  107.     !document.getElementById("resetToolbars").checked &&
  108.     !document.getElementById("disableAddons").checked &&
  109.     !document.getElementById("restoreSearch").checked;
  110. }
  111.